package cn.darkhorse.workflow.service;

import cn.darkhorse.workflow.auto.entity.*;

import javax.annotation.Resource;
import java.security.PrivateKey;
import java.util.List;

/**
 * @description:
 * @author: mr.wang
 * @time: 2021/4/16 9:41
 */
public interface ISysUserAndPostExtService {
	
	/**
	 * 添加流程用户数据
	 */
	void addBpmnSysUser(BpmnSysUser user);
	void updateBpmnSysUser(BpmnSysUser user);
	void deleteBpmnSysUser(String  userName);
	
	/**
	 * 添加岗位信息
	 * @param sysPost
	 */
	void insertSyspost(BpmnSysPost sysPost);
	
	/**
	 * 修改岗位信息
	 * @param sysPost
	 */
	void updateSyspost(String postCode,BpmnSysPost sysPost);
	void deleteSyspost(String postCode);
	
	/**
	 * 添加用户岗位信息
	 * @param postCode
	 */
	void insertSysAndpost(List<String> postCode,String userName,String nickName,String phoneNumber,String status,Long deptId);
	
	/**
	 * 修改用户岗位信息
	 */
	void updateSysAndpost(List<String> postCodes,String userName);
	
	
	/**
	 * 添加部门信息
	 * @param sysDept
	 */
	void insertSysDept(BpmnSysDept sysDept,Long relativeManager,Long relativeInCharge);
	
	/**
	 * 修改部门信息
	 * @param sysDept
	 */
	void updateSysDept(BpmnSysDept sysDept,Long relativeManager,Long relativeInCharge);
	
	/**
	 * 修改相对岗位
	 * @param deptId
	 * @param relativeManager
	 * @param relativeInCharge
	 */
	void updateRePo(Long deptId,Long relativeManager,Long relativeInCharge,Integer deptType);
	
	/**
	 * 删除部门信息
	 * @param deptId
	 */
	void deleteSysDept(Long deptId);
	
	/**
	 *获取停用/交接人信息
	 * @param userNames
	 * @return
	 */
	List<BpmnSysUser> stopTransferUser(List<String> userNames);
	List<BpmnSysUser> stopTransferUser(List<String> userNames,Integer type);
	List<BpmnSysUser> stopTransferUser(Integer type);


	
	/**
	 * 停用--设置交接人
	 * @param userName
	 * @param handoverPerson
	 */
	void stopTransferUser(String userName,String status, String handoverPerson);
	
	/**
	 * 用户是否已被设置交接人
	 * @param userName
	 */
	String canBeHandoverPerson(String userName);
	
}
